package db;

import java.util.ArrayList;

import dao.DBException;

import model.CityModel;
import model.CountryModel;
import model.WeatherModel;
/**
 * 
 * @author Katharina Matei
 * @version 1.0.0
 */
public interface DataBaseInterface {

	/**
	 * Liest alle Countrys aus der Datenbank
	 * 
	 * @return ArrayList<CountryModel>
	 * @throws DBException
	 */
	public ArrayList<CountryModel> getCountries() throws DBException;

	/**
	 * Liest alle Citys zu einer Country-ID aus Datenbank
	 * 
	 * @param countryID
	 * @return ArrayList<CityModel>
	 * @throws DBException
	 */
	public ArrayList<CityModel> getCities(String countryID) throws DBException;

	/**
	 * Liest den akt. Wetter im City aus DB
	 * 
	 * @param cityID
	 * @return WeatherModel
	 * @throws DBException
	 */
	public WeatherModel getAktWeatherByCity(String cityID) throws DBException;

	/**
	 * Liest alle Wetter-Daten im City aus der DB
	 * 
	 * @param cityID
	 * @return ArrayList<WeatherModel>
	 * @throws DBException
	 */
	public ArrayList<WeatherModel> getWeather(String cityID) throws DBException;

	/**
	 * Liest die Wetter-Daten im City fuer Zeitinterval (von-bis) aus der DB
	 * 
	 * @param cityID, von, von
	 * @return ArrayList<WeatherModel>
	 * @throws DBException
	 */
	public ArrayList<WeatherModel> getWeatherVonBis(String cityID, String von,
			String bis) throws DBException;

	/**
	 * Fuegt ein Wetter-Datensatz in die DB
	 * 
	 * @param WeatherModel
	 * @return
	 * @throws DBException
	 */
	public void setWeather(WeatherModel wm) throws DBException;

	/**
	 * Liest alle Countrys aus der Datenbank
	 * 
	 * @param
	 * @return ArrayList<CountryModel>
	 * @throws DBException
	 */
	public ArrayList<CountryModel> getCountryModelAll() throws DBException;
}
